import LZString from "lz-string";

const storage = {
  get(key) {
    // 使用 UniApp 的同步获取存储方法
    let storedValue = uni.getStorageSync(key) || '';
    let res = LZString.decompressFromEncodedURIComponent(storedValue);
    
    try {
      return JSON.parse(res);
    } catch (error) {
      // 非 JSON 格式直接返回原始值
      return res;
    }
  },
  
  set(key, val) {
    // 处理值类型（与原逻辑保持一致）
    if (typeof val === 'object' && val !== null) {
      val = JSON.stringify(val);
    }
    if (typeof val === 'number') {
      val = val.toString();
    }
    
    // 压缩后使用 UniApp 的同步存储方法
    const compressed = LZString.compressToEncodedURIComponent(val);
    uni.setStorageSync(key, compressed);
  },
  
  remove(key) {
    // 使用 UniApp 的同步删除存储方法
    uni.removeStorageSync(key);
  }
};

export default storage;